package com.hf.wujian.model;

import com.hf.wujian.exception.CreateRoomException;

/**
 * 游戏用户接口
 *
 * @author hf
 * @date 2018/11/23
 * @version 1.0
 */
public interface GameUser {


    /**
     * 获取昵称
     * @return 游戏用户昵称
     */
    String getNickName();

    /**
     * 获取房间
     * @return 游戏房间
     */
    GameRoom getGameRoom();

    /**
     * 获取uuid
     * @return 游戏用户uuid
     */
    String getUuid();

    /**
     * 创建房间
     * @param gameRoom 游戏房间
     * @throws CreateRoomException 创建房间时如果已经加入其他房间，将会抛出异常
     */
    void createRoom(GameRoom gameRoom) throws CreateRoomException;

    /**
     * 加入房间
     */
    void joinRoom(GameRoom gameRoom);

    /**
     * 退出房间
     */
    void cancelRoom(int type);

    /**
     * 销毁房间
     */
    void distoryRoom();

    /**
     * 消息发送方法
     * @param str 消息
     */
    void sendMessageToUser(String str);

    /**
     * 准备
     */
    void prepare();
}
